Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин
Данные серии XYChart.Series представлены классом XYChart. Data.
Класс XYChart. Data представляет данные серии XYChart.Series и имеет свойства: extraValue, node, xValue, yValue.
Свойства xValue и yValue определяют значение элемента данных по оси X и Y, свойство extraValue – дополнительное значение, например, радиус для кружковой диаграммы.
После того как элемент данных добавляется в набор данных диаграммы XYChart, формируется узел Node, отвечающий за отображение элемента данных, и с помощью свойства node можно получить доступ к свойствам этого узла.
До добавления элемента данных в набор данных диаграммы XYChart можно определить свой узел Node, отвечающий за отображение элемента данных.
Оси диаграммы XYChart представлены базовым классом Axis и его подклассами CategoryAxis и NumberAxis.
Свойство label класса Axis определяет подпись оси, а свойство side – сторону отображения оси.
С помощью свойства autoRanging устанавливается автоматический выбор диапазона значений оси, исходя из набора данных диаграммы.
Если свойство animated установить со значением true, тогда ось будет динамически реагировать на изменения своих свойств.
Свойства tickLabelFill, tickLabelFont, tickLabelGap, tickLabelRotation, tickLabelsVisible, tickLength и tickMarkVisible определяют цвет подписей к меткам оси, шрифт подписей к меткам оси, интервал между линиями меток на оси и подписями к меткам оси, поворот подписей к меткам оси, отображение подписей меток оси, длину линий меток на оси и отображение меток оси.
Класс CategoryAxis представляет представляет ось, отображающую дискретные строковые значения отдельных категорий, например, как здесь месяцы.
Набор строковых значений ObservableList оси CategoryAxis может быть создан с помощью статического метода observableArrayList класса FXCollections.
Класс CategoryAxis имеет, помимо унаследованных от класса Axis, собственные свойства categorySpacing, endMargin, gapStartAndEnd, и startMargin, определяющие интервал между метками, интервал между последней меткой и окончанием оси, распределение половины расстояния между метками на начало и конец оси и интервал между началом оси и первой меткой.
Класс NumberAxis представляет числовую ось диаграммы XYChart.
Класс NumberAxis имеет, помимо унаследованных от класса Axis, свойства, унаследованные от класса ValueAxis.
И собственные свойства forceZeroInRange и tickUnit.
Свойства lowerBound, minorTickCount, minorTickLength, minorTickVisible, tickLabelFormatter и upperBound позволяют определить минимальное значение оси, количество вспомогательных меток, длину вспомогательных меток, отображение вспомогательных меток, форматирование подписей к меткам оси и максимальное значение оси.
Свойства forceZeroInRange и tickUnit определяют включение нулевой метки в видимый диапазон при его автонастройке и интервал между главными метками оси.
Круговая диаграмма представлена классом PieChart.
Класс PieChart представляет круговую (секторную) диаграмму и имеет, помимо унаследованных от класса Chart, собственные свойства.
Свойство data определяет набор ObservableList данных, из которых формируются сектора диаграммы, подписи к ним и содержимое панели пояснений к диаграмме.
Набор данных ObservableList диаграммы PieChart может быть создан с помощью статического метода observableArrayList класса FXCollections.
При этом данные диаграммы PieChart представляются классом PieChart. Data.
Эклемпляр которого может быть создан с помощью конструктора с использованием подписи к сектору диаграммы, и значения доли сектора в диаграмме.
Получить доступ к свойствам узла Node, представляющего сектор PieChart. Data, позволяет метод getNode класса PieChart. Data, а к свойствам самой диаграммы PieChart, к которой относится сектор, – метод getChart класса PieChart. Data.
С помощью свойства clockwise класса PieChart устанавливается расположение секторов диаграммы по часовой стрелке, а с помощью свойства startAngle – угол начала первого сектора диаграммы.
Свойства labelsVisible и labelLineLength определяют отображение подписей к секторам диаграммы и длину линии от сектора диаграммы до подписи к сектору.
Приведенный здесь код демонстрирует пример создания круговой диаграммы.
Диаграмма PieChart помещается в левый верхний угол и для нее устанавливается набор данных и такие свойства как курсор мышки, стиль, предпочтительные размеры, динамическое реагирование на изменение свойств, заголовок и его расположение, отображение и расположение панели пояснений к диаграмме, расположение секторов по часовой стрелке, отображение подписей и длина линии к подписи, угол начала первого сектора.
Далее мы определяем обработчик нажатия мышки на секторе диаграммы, который отображает значение сектора с помощью всплявающего окна Popup.
И мы определяем обработчик перетаскивания мышкой, поворачивающий диаграмму вокруг своей оси.
Такой поворот отображения диаграммы вокруг своей оси возможен, так как свойство animated диаграммы установлено со значением true.
Класс AreaChart представляет диаграммы-области, основанные на графиках, в которых область между осью и линией каждого графика выделена своим цветом.
Класс AreaChart имеет, помимо унаследованных от класса Chart, свойства, унаследованные от класса XYChart.
Приведенный здесь код демонстрирует пример создания диаграммы с областями.
Для диаграммы AreaChart создаются горизонтальная ось CategoryAxis и вертикальная ось NumberAxis, для которых определяются такие свойства как подпись оси, цвет подписей к меткам оси и так далее.
Диаграмма AreaChart помещается в левый верхний угол и для нее устанавливаются такие свойства как курсор мышки, стиль, предпочтительные размеры, заголовок и его расположение, отображение и расположение панели пояснений к диаграмме, выделение через один столбцов сетки диаграммы и отображение линий сетки диаграммы.
Для диаграммы AreaChart создаются две серии данных, для одной из которых устанавливается визуальный эффект.
Здесь мы создаем три узла данных серии, представленные текстом.
И заполняем серию данными с использованием этих узлов.
При этом числовые данные оси Y привязываются к строковым категориям оси X.
Диаграмма StackedAreaChart – это вариация диаграммы AreaChart, в которой области накладываются таким образом, что на вертикальной оси отображаются кумулятивные значения в любой заданной точке вдоль горизонтальной оси.
То есть значения на верхней кривой – здесь, это суммарные значения двух серий.
Для их корректного отображения мы убрали верхнее ограничение значений вертикальной оси.
Методом chartArea.setCreateSymbols (false) можно убрать узлы значений, превратив кривые в тренды.
Класс BarChart представляет диаграммы-прямоугольники, заполненные разными цветами и сгруппированные по разным категориям.
Одна ось диаграммы BarChart должна быть CategoryAxis, а другая – NumberAxis.
Если ось CategoryAxis является горизонтальной осью, тогда диаграмма BarChart содержит вертикальные столбики.
Если же ось CategoryAxis является вертикальной осью, тогда диаграмма BarChart состоит из горизонтальных полос.
Класс BarChart имеет, помимо унаследованных от класса Chart, свойства, унаследованные от класса XYChart и собственные свойства barGap и categoryGap, определяющие интервалы между прямоугольниками в одной категории и разными категориями.
Приведенный здесь код демонстрирует пример создания диаграммы со столбиками.
Для диаграммы BarChart создаются горизонтальная ось CategoryAxis и вертикальная ось NumberAxis, для которых определяются такие свойства как подпись оси, цвет подписей к меткам оси и так далее.
Диаграмма BarChart помещается в левый верхний угол и для нее устанавливаются такие свойства как курсор мышки, стиль, предпочтительные размеры, заголовок и его расположение, отображение и расположение панели пояснений к диаграмме, отсутствие выделения через один столбцов и строк сетки диаграммы, отображение горизонтальных линий сетки диаграммы и интервалы между столбиками в одной категории и разными категориями.
Для диаграммы BarChart создаются две именованные серии данных.
И эти серии добавляются в диаграмму.
Диаграмма StackedBarChart – это вариант диаграммы BarChart, которая показывает кумулятивные значения на вертикальной оси